<?php
/**
 * @abstract
 */
abstract class Unit
{
    private $territory = null;
    private $player = null;

    /**
     * Initialisiert Land und Spieler der Einheit
     * @param Territory $territory Das Land auf dem die Einheit steht
     * @param Player $player Der Spieler dem die Einheit gehört
     */
    function __construct($territory, $player)
    {
        $this->territory = $territory;
        $this->player = $player;
    }

    /**
     * Liefert das Land auf dem die Einheit steht zurück
     * @return <Territory>
     */
    public function getTerritory ()
    {
            return $this->territory;
    }

    /**
     * Setzt das Land auf dem die Einheit steht auf $teritory
     * @param <Territory> $territory
     */
    public function setTerritory ($territory)
    {
        $this->territory = $territory;
    }

    /**
     * Liefert den Spieler zurück dem die Einheit gehoert
     * @return <Player>
     */
    public function getPlayer()
    {
        return $this->player;
    }

    /**
     * Setzt den Spieler, dem die Einheit gehoert, auf $player
     * @param <Player> $player
     */
    public function setPlayer($player)
    {
        $this->player = $player;
    }

    /**
     * Gibt Informationen ueber die Einheit aus
     * @return <string>
     */
    public function getInfo()
    {
        return 'Typ: '.get_class($this).', Land: '
               .$this->territory->getName().', Spieler: '
               .$this->player->getName().'<br />';
    }
}
?>
